# coding=utf-8
import numpy as np
import tf_geometric as tfg
import tensorflow as tf
data = []
for line in open("data/BM25/del.txt",encoding="utf8"):
    line = line.strip("\n").replace(" ","")
    data.append(line)
word= [element_one for element in data for element_one in element]
word = list(set(word))
word_dict = dict(zip(word,[i for i in range(len(word))]))
word_dict = {'弹': 0, '溺': 1, '腻': 2, '胳': 3, '基': 4, '柔': 5, '酞': 6, '啡': 7, '乏': 8, '印': 9, '命': 10, '典': 11, '诺': 12, '豚': 13, '屈': 14, '焰': 15, '回': 16, '歇': 17, '转': 18, '法': 19, '速': 20, '纡': 21, '轮': 22, '耻': 23, '略': 24, '顿': 25, '风': 26, 'T': 27, '楚': 28, '智': 29, '搏': 30, '巩': 31, '乳': 32, '元': 33, '幼': 34, '神': 35, '泪': 36, '稍': 37, '官': 38, '硬': 39, '残': 40, '息': 41, '汗': 42, '欲': 43, '溶': 44, '唾': 45, '膀': 46, '隐': 47, '酩': 48, '偻': 49, '趾': 50, '铅': 51, '稀': 52, '男': 53, '挤': 54, '髂': 55, '槽': 56, '日': 57, '律': 58, '玛': 59, '骼': 60, '滴': 61, '泌': 62, '泔': 63, '林': 64, '走': 65, '龅': 66, '急': 67, '疙': 68, '移': 69, '谵': 70, '皲': 71, '臼': 72, '对': 73, '发': 74, '葡': 75, '凝': 76, '浮': 77, '糜': 78, '柱': 79, '豹': 80, '跟': 81, '龋': 82, '至': 83, '舒': 84, '灌': 85, '化': 86, '沫': 87, '称': 88, '哈': 89, '盂': 90, '经': 91, '衣': 92, '塞': 93, '输': 94, '咳': 95, '径': 96, '恋': 97, '招': 98, '收': 99, '言': 100, '眩': 101, '鸭': 102, '兆': 103, '颤': 104, '弱': 105, '蜗': 106, '张': 107, '慢': 108, '健': 109, '丘': 110, '蕴': 111, '并': 112, '肋': 113, '春': 114, '抽': 115, '特': 116, '地': 117, '观': 118, '药': 119, '绌': 120, '筋': 121, '疡': 122, '替': 123, '式': 124, '睫': 125, '黏': 126, '甚': 127, '蹲': 128, '蜕': 129, '颌': 130, '高': 131, '冒': 132, '房': 133, '凹': 134, '汀': 135, '扯': 136, '啼': 137, '随': 138, '海': 139, '联': 140, '呈': 141, '暴': 142, '青': 143, '里': 144, '散': 145, '亡': 146, '扣': 147, '跌': 148, '门': 149, '针': 150, '绝': 151, '锈': 152, '腮': 153, '与': 154, '滞': 155, '安': 156, '痤': 157, '吸': 158, '的': 159, '咬': 160, '痴': 161, '肾': 162, '吵': 163, '痘': 164, '怪': 165, '腐': 166, '第': 167, '我': 168, '形': 169, '肠': 170, '然': 171, '撕': 172, '头': 173, '尼': 174, '服': 175, '早': 176, '闭': 177, '等': 178, '（': 179, '胃': 180, '螺': 181, '遥': 182, '剥': 183, '纹': 184, '意': 185, '粒': 186, '鲜': 187, '盘': 188, '导': 189, '渴': 190, '毳': 191, '怕': 192, '精': 193, '羞': 194, '嗣': 195, '脚': 196, '接': 197, '底': 198, '赤': 199, '判': 200, '程': 201, '瘤': 202, '色': 203, '口': 204, '瘙': 205, '疬': 206, '镁': 207, '交': 208, '恶': 209, '烟': 210, '叶': 211, '集': 212, 'g': 213, '忍': 214, '淀': 215, '痕': 216, '站': 217, '锥': 218, '浑': 219, '颗': 220, '跛': 221, '为': 222, '暑': 223, '烂': 224, '分': 225, '星': 226, '图': 227, '期': 228, '粘': 229, '闪': 230, '鸣': 231, 'K': 232, '深': 233, '浊': 234, '球': 235, '爬': 236, '腿': 237, '癖': 238, '淋': 239, '容': 240, '频': 241, '有': 242, '区': 243, '奔': 244, '氮': 245, '古': 246, '创': 247, '芽': 248, '包': 249, '疫': 250, '热': 251, '震': 252, '蹈': 253, '证': 254, '异': 255, '米': 256, '臭': 257, '难': 258, '岛': 259, '腭': 260, '鼠': 261, '茶': 262, '陷': 263, '望': 264, '婴': 265, '灼': 266, '清': 267, '零': 268, '果': 269, '犯': 270, '阿': 271, '缔': 272, 'V': 273, '说': 274, '翻': 275, '瘟': 276, '轻': 277, '餐': 278, '茎': 279, '胚': 280, '橘': 281, '麻': 282, '目': 283, '护': 284, '器': 285, '满': 286, '伤': 287, '肢': 288, '脊': 289, '兰': 290, '牵': 291, '谷': 292, '阑': 293, '蛋': 294, '薄': 295, '痢': 296, '能': 297, '窄': 298, '谢': 299, '感': 300, '漠': 301, '瘢': 302, '灾': 303, '真': 304, '屑': 305, '樱': 306, '淤': 307, '解': 308, '写': 309, '执': 310, '剧': 311, '颅': 312, '害': 313, '仰': 314, '见': 315, '腊': 316, '育': 317, '强': 318, '丸': 319, '和': 320, '阈': 321, '膈': 322, '属': 323, '嘶': 324, '刺': 325, '远': 326, '战': 327, '股': 328, '稳': 329, '泛': 330, '卧': 331, '或': 332, '协': 333, '煽': 334, '眉': 335, '率': 336, '侵': 337, '粟': 338, '习': 339, '胱': 340, '补': 341, '潜': 342, '漫': 343, '尽': 344, '氨': 345, '组': 346, '阴': 347, '咙': 348, '前': 349, '棕': 350, '外': 351, '中': 352, '用': 353, '切': 354, '时': 355, '步': 356, '良': 357, '睑': 358, '火': 359, '塌': 360, '怠': 361, '寐': 362, '小': 363, '臂': 364, '志': 365, '妊': 366, '板': 367, '宫': 368, '听': 369, '短': 370, '上': 371, '红': 372, '枢': 373, '呃': 374, '斜': 375, '肤': 376, '盗': 377, '各': 378, '寒': 379, '酯': 380, '别': 381, '腱': 382, '蛙': 383, '除': 384, '植': 385, '败': 386, '濡': 387, '抖': 388, '瘩': 389, '松': 390, '重': 391, '纵': 392, '舌': 393, '进': 394, '痉': 395, '蝉': 396, '睡': 397, '根': 398, '痔': 399, '甘': 400, '语': 401, '布': 402, '酶': 403, 'a': 404, '亮': 405, '喂': 406, '栓': 407, '龛': 408, '畸': 409, '涕': 410, '会': 411, '鞍': 412, '痞': 413, '阵': 414, '力': 415, '韧': 416, '共': 417, '呆': 418, '血': 419, '怀': 420, '天': 421, 'o': 422, '蚁': 423, '瘰': 424, '敏': 425, '声': 426, '卵': 427, '痹': 428, '汁': 429, '完': 430, '蛾': 431, '蛛': 432, '雾': 433, '溴': 434, '轴': 435, '疤': 436, '视': 437, '征': 438, '其': 439, '3': 440, '广': 441, '酰': 442, '余': 443, '盛': 444, '奇': 445, '胛': 446, '痂': 447, '左': 448, '铜': 449, '排': 450, '疣': 451, '查': 452, '令': 453, '值': 454, '疝': 455, '东': 456, '学': 457, '缘': 458, '虫': 459, '引': 460, '内': 461, '管': 462, '骤': 463, '巨': 464, '嗽': 465, '肥': 466, '济': 467, '情': 468, '甲': 469, '羊': 470, '实': 471, '腘': 472, '始': 473, '偏': 474, '半': 475, '喀': 476, '示': 477, '渐': 478, '低': 479, '书': 480, '焦': 481, '烁': 482, '脾': 483, '消': 484, '久': 485, '向': 486, '先': 487, '连': 488, '象': 489, '呕': 490, '禁': 491, '午': 492, '旋': 493, '枕': 494, '打': 495, '住': 496, '肝': 497, '现': 498, '涎': 499, '陶': 500, '蒂': 501, '记': 502, '垂': 503, '快': 504, '烦': 505, '嵌': 506, 'A': 507, '关': 508, '击': 509, '苦': 510, '污': 511, '颈': 512, '钾': 513, '蓄': 514, '运': 515, '浆': 516, '如': 517, '哭': 518, '升': 519, '笑': 520, '漏': 521, '型': 522, '袋': 523, '受': 524, '跖': 525, '糊': 526, '落': 527, '项': 528, '周': 529, '狂': 530, '帽': 531, '油': 532, '呼': 533, '昏': 534, '杆': 535, '癜': 536, '萎': 537, '离': 538, '舟': 539, '供': 540, '贾': 541, '退': 542, '间': 543, '鳞': 544, '氧': 545, '9': 546, '漓': 547, '壅': 548, '迟': 549, '饥': 550, '柏': 551, '遗': 552, '惰': 553, '捻': 554, '烧': 555, '十': 556, '累': 557, '虹': 558, '认': 559, '疮': 560, '生': 561, '郁': 562, '烘': 563, '冬': 564, '皱': 565, '扰': 566, '支': 567, '入': 568, '休': 569, '永': 570, '总': 571, '弯': 572, '聚': 573, '子': 574, '猩': 575, '逸': 576, '靡': 577, '陈': 578, '温': 579, '胡': 580, '疹': 581, '电': 582, '阳': 583, '损': 584, '忆': 585, '狮': 586, '逆': 587, '注': 588, '抗': 589, '透': 590, '悲': 591, '扪': 592, '调': 593, '限': 594, '层': 595, '驼': 596, '危': 597, '虚': 598, '严': 599, '逐': 600, '表': 601, '母': 602, '炎': 603, '继': 604, '哮': 605, '穿': 606, '滤': 607, '掌': 608, '骨': 609, '矇': 610, '胖': 611, 'p': 612, '戕': 613, '犬': 614, '窍': 615, '想': 616, '射': 617, '一': 618, '拇': 619, '欣': 620, '延': 621, '涨': 622, '疳': 623, '尿': 624, '巴': 625, '咽': 626, '矮': 627, '适': 628, '紫': 629, '醒': 630, '惊': 631, '倾': 632, '条': 633, '刮': 634, '咯': 635, '以': 636, '迁': 637, '卒': 638, '算': 639, '系': 640, '浸': 641, '端': 642, '常': 643, '额': 644, '殖': 645, '孕': 646, '止': 647, '豆': 648, '促': 649, '戒': 650, '钻': 651, '功': 652, '味': 653, '维': 654, '织': 655, '粪': 656, '瘀': 657, '思': 658, '勃': 659, '着': 660, '双': 661, '嗳': 662, '核': 663, '劳': 664, '疲': 665, '扑': 666, '渗': 667, '竭': 668, '肿': 669, '摩': 670, '开': 671, '畅': 672, '胯': 673, '过': 674, '潴': 675, 'P': 676, '胁': 677, '毒': 678, '四': 679, '显': 680, '咖': 681, '幻': 682, '附': 683, '灶': 684, '路': 685, '愈': 686, '旁': 687, '辗': 688, '二': 689, '名': 690, '拉': 691, '喇': 692, '蒙': 693, '则': 694, '忘': 695, '抓': 696, '突': 697, '策': 698, '杵': 699, '膊': 700, '断': 701, '酮': 702, '坠': 703, '冠': 704, '易': 705, '留': 706, '自': 707, '床': 708, '杯': 709, '虑': 710, '死': 711, '龟': 712, '光': 713, '釉': 714, '褶': 715, '盾': 716, '窦': 717, '叠': 718, '养': 719, '堆': 720, '冷': 721, '唇': 722, '贯': 723, '片': 724, '萄': 725, '鞘': 726, '曲': 727, '阻': 728, '围': 729, '蓝': 730, 'l': 731, '须': 732, '嗝': 733, '俯': 734, '改': 735, 'z': 736, '菌': 737, '而': 738, '桡': 739, '传': 740, '迂': 741, '喘': 742, '沥': 743, '胆': 744, '块': 745, '脂': 746, '腋': 747, '折': 748, '憔': 749, '水': 750, '钠': 751, '衄': 752, '喉': 753, '状': 754, '粗': 755, '马': 756, '饱': 757, '返': 758, '泄': 759, '玻': 760, '脏': 761, '碍': 762, '眶': 763, '觉': 764, '裂': 765, '脘': 766, '匍': 767, '女': 768, '窝': 769, '铁': 770, '颞': 771, '全': 772, '疏': 773, 'k': 774, '占': 775, '压': 776, '骶': 777, '胫': 778, '性': 779, '繁': 780, '宽': 781, '降': 782, '鹅': 783, '熊': 784, '串': 785, '绪': 786, '作': 787, '病': 788, '草': 789, '貌': 790, '职': 791, '扩': 792, '尾': 793, '冲': 794, '贫': 795, '弛': 796, '沟': 797, '妇': 798, '合': 799, '瘘': 800, '溃': 801, '皖': 802, '瘫': 803, '齿': 804, '寿': 805, '顺': 806, '歪': 807, '痈': 808, '富': 809, '述': 810, '无': 811, '亏': 812, '定': 813, '醉': 814, '探': 815, '厌': 816, '界': 817, '便': 818, '利': 819, '样': 820, '齐': 821, '喷': 822, '吟': 823, '怖': 824, '裹': 825, '杂': 826, '蜘': 827, '猿': 828, '偿': 829, '因': 830, '手': 831, '疾': 832, '壁': 833, '喝': 834, '质': 835, 'c': 836, '潮': 837, '津': 838, '棘': 839, '饿': 840, '绀': 841, '稽': 842, '指': 843, '寰': 844, '旺': 845, '克': 846, '可': 847, '绞': 848, '卜': 849, '骺': 850, '紧': 851, '融': 852, '摆': 853, '慰': 854, '纳': 855, '痛': 856, '应': 857, '膏': 858, '吃': 859, '肚': 860, '蛔': 861, '品': 862, '菜': 863, '奶': 864, '位': 865, '加': 866, '拥': 867, '动': 868, '喜': 869, '冻': 870, '纤': 871, '读': 872, '者': 873, '巢': 874, '涉': 875, '癌': 876, '下': 877, '膝': 878, '材': 879, '好': 880, '俱': 881, '固': 882, '带': 883, '念': 884, '于': 885, '烈': 886, '被': 887, '磨': 888, '举': 889, '叉': 890, '隙': 891, '噎': 892, '赫': 893, '苍': 894, '正': 895, '倒': 896, '叹': 897, '钟': 898, '起': 899, '构': 900, '璃': 901, '疖': 902, '梗': 903, '际': 904, '℃': 905, '胰': 906, '荨': 907, '身': 908, '障': 909, '较': 910, '涣': 911, '抑': 912, '伸': 913, '菱': 914, '绳': 915, '晨': 916, '孤': 917, '脐': 918, '肛': 919, '直': 920, '躁': 921, '亢': 922, '姿': 923, '参': 924, '搔': 925, '脓': 926, '孩': 927, '罗': 928, '侧': 929, '扁': 930, '环': 931, '液': 932, '瘦': 933, 'O': 934, '贵': 935, 'e': 936, '润': 937, '扭': 938, '鸡': 939, '颊': 940, '索': 941, '）': 942, '幽': 943, '膨': 944, '线': 945, '蝴': 946, 'H': 947, '腕': 948, '廓': 949, '1': 950, '童': 951, '耳': 952, '夹': 953, '梦': 954, '厚': 955, '不': 956, 's': 957, '畏': 958, '蹒': 959, '体': 960, '三': 961, '毁': 962, '立': 963, 'C': 964, '鼓': 965, '壮': 966, '、': 967, '整': 968, '褥': 969, '锁': 970, '网': 971, '角': 972, '恐': 973, '囟': 974, '介': 975, '局': 976, '苔': 977, '艰': 978, '昼': 979, '痫': 980, '兴': 981, '冰': 982, '许': 983, '眠': 984, '物': 985, '诱': 986, '肌': 987, '桃': 988, '褐': 989, '湿': 990, '含': 991, '舞': 992, '枯': 993, '列': 994, '窒': 995, '梅': 996, '跚': 997, '季': 998, '通': 999, '次': 1000, '宁': 1001, '两': 1002, '刀': 1003, '弧': 1004, '撤': 1005, '嚏': 1006, '积': 1007, '耸': 1008, '音': 1009, '丙': 1010, '肺': 1011, '续': 1012, '减': 1013, '悴': 1014, '肽': 1015, '源': 1016, '数': 1017, '响': 1018, '统': 1019, '群': 1020, '倦': 1021, '得': 1022, '边': 1023, '明': 1024, '瓣': 1025, '丛': 1026, '夏': 1027, '椎': 1028, '坚': 1029, '花': 1030, '惯': 1031, '差': 1032, '超': 1033, '溢': 1034, '怒': 1035, 't': 1036, '悸': 1037, '忽': 1038, '蠕': 1039, '放': 1040, '膺': 1041, '妆': 1042, '处': 1043, '空': 1044, 'D': 1045, '痰': 1046, '酱': 1047, '截': 1048, '睛': 1049, '气': 1050, '失': 1051, '平': 1052, '及': 1053, '肉': 1054, '迷': 1055, '净': 1056, '痒': 1057, '膜': 1058, '讷': 1059, '赘': 1060, '肩': 1061, '标': 1062, '托': 1063, '痪': 1064, '括': 1065, '大': 1066, '隔': 1067, '验': 1068, '近': 1069, '痿': 1070, '髋': 1071, '叩': 1072, '绿': 1073, '孔': 1074, '哑': 1075, '毕': 1076, '蚀': 1077, '握': 1078, '室': 1079, '吮': 1080, 'i': 1081, '猝': 1082, '浅': 1083, '染': 1084, '盲': 1085, '综': 1086, '每': 1087, '原': 1088, '博': 1089, '呛': 1090, '错': 1091, '段': 1092, '所': 1093, '更': 1094, '坐': 1095, '野': 1096, '囊': 1097, '厥': 1098, '少': 1099, '翼': 1100, '儿': 1101, '屎': 1102, '碎': 1103, '副': 1104, '胞': 1105, '髓': 1106, '闷': 1107, '踝': 1108, '制': 1109, '嗅': 1110, '娠': 1111, '触': 1112, '挛': 1113, '脸': 1114, '多': 1115, '理': 1116, '主': 1117, '吠': 1118, '挫': 1119, '相': 1120, 'b': 1121, 'v': 1122, '哽': 1123, '术': 1124, '疥': 1125, '疸': 1126, '泽': 1127, '革': 1128, '态': 1129, '凉': 1130, '游': 1131, '糙': 1132, '威': 1133, '同': 1134, '嘴': 1135, '节': 1136, '憋': 1137, '袭': 1138, '似': 1139, '痣': 1140, '造': 1141, '破': 1142, '衰': 1143, '懒': 1144, '科': 1145, '假': 1146, '胝': 1147, '洞': 1148, '白': 1149, '面': 1150, '颜': 1151, '祥': 1152, '彬': 1153, '暂': 1154, '笨': 1155, '待': 1156, '胀': 1157, '龈': 1158, '保': 1159, '循': 1160, '文': 1161, '百': 1162, '碱': 1163, '钩': 1164, '新': 1165, '圆': 1166, '癫': 1167, '心': 1168, '乱': 1169, '弓': 1170, '混': 1171, '丧': 1172, '窘': 1173, '狼': 1174, '知': 1175, '腺': 1176, '仁': 1177, '诗': 1178, '脉': 1179, '约': 1180, '伴': 1181, '候': 1182, '萝': 1183, '营': 1184, '弦': 1185, '年': 1186, '后': 1187, '胶': 1188, '耐': 1189, '话': 1190, '妄': 1191, '徐': 1192, '贪': 1193, '足': 1194, '反': 1195, '抱': 1196, '试': 1197, '钙': 1198, '废': 1199, '涩': 1200, '矛': 1201, '蝶': 1202, '影': 1203, '珠': 1204, '他': 1205, '格': 1206, '央': 1207, '酊': 1208, '毛': 1209, 'r': 1210, 'I': 1211, '鼻': 1212, '停': 1213, '燥': 1214, '蜂': 1215, '度': 1216, '跳': 1217, '激': 1218, '躯': 1219, '道': 1220, '臀': 1221, '诊': 1222, '隆': 1223, '露': 1224, '慌': 1225, '迹': 1226, '糖': 1227, '免': 1228, '波': 1229, '堵': 1230, '金': 1231, '枪': 1232, '在': 1233, '晕': 1234, '疼': 1235, '凸': 1236, '肘': 1237, '邪': 1238, '任': 1239, '痼': 1240, '粉': 1241, '椭': 1242, '且': 1243, '雌': 1244, '脱': 1245, '哺': 1246, '摇': 1247, '跨': 1248, '缩': 1249, '疱': 1250, '干': 1251, '活': 1252, '模': 1253, '淫': 1254, '汹': 1255, '饮': 1256, '点': 1257, '治': 1258, '肪': 1259, '密': 1260, '笔': 1261, '胸': 1262, '抬': 1263, '症': 1264, '爆': 1265, '滑': 1266, '磺': 1267, '老': 1268, '渣': 1269, '雄': 1270, '来': 1271, '磷': 1272, '事': 1273, '睁': 1274, '静': 1275, '黑': 1276, '单': 1277, '拒': 1278, '氏': 1279, '顽': 1280, '细': 1281, '充': 1282, '颧': 1283, '泡': 1284, '牙': 1285, '佝': 1286, '桥': 1287, '酸': 1288, '瞳': 1289, '香': 1290, '漂': 1291, '推': 1292, '醇': 1293, '持': 1294, '坑': 1295, '紊': 1296, '顶': 1297, '具': 1298, '背': 1299, '稠': 1300, '太': 1301, '弥': 1302, '暗': 1303, '结': 1304, '痱': 1305, '僵': 1306, 'n': 1307, '缺': 1308, '复': 1309, '脑': 1310, '存': 1311, '瓷': 1312, '溏': 1313, '晶': 1314, '擦': 1315, '迫': 1316, '雨': 1317, '缓': 1318, '钱': 1319, 'M': 1320, '睾': 1321, '猫': 1322, '腔': 1323, '髌': 1324, '斯': 1325, 'h': 1326, '机': 1327, '产': 1328, '腰': 1329, '纯': 1330, '旧': 1331, '增': 1332, '坏': 1333, '五': 1334, '氟': 1335, '奋': 1336, '月': 1337, '搐': 1338, '泻': 1339, '量': 1340, '吐': 1341, '腹': 1342, '啤': 1343, '酒': 1344, '灰': 1345, '致': 1346, '尖': 1347, '塔': 1348, '置': 1349, '石': 1350, '疽': 1351, '衡': 1352, '业': 1353, '长': 1354, '困': 1355, '吞': 1356, '卡': 1357, '碳': 1358, '善': 1359, '秃': 1360, '变': 1361, '规': 1362, '监': 1363, '割': 1364, '峰': 1365, '朵': 1366, '熟': 1367, '浓': 1368, '未': 1369, '秘': 1370, '嗜': 1371, '垢': 1372, '极': 1373, '软': 1374, '人': 1375, '斑': 1376, '桶': 1377, '摸': 1378, '素': 1379, '络': 1380, '缝': 1381, '个': 1382, '树': 1383, '微': 1384, '淡': 1385, '食': 1386, '非': 1387, '右': 1388, '团': 1389, '庭': 1390, '鹰': 1391, '束': 1392, '钝': 1393, '聋': 1394, '硒': 1395, '黄': 1396, '丝': 1397, '类': 1398, '丹': 1399, '振': 1400, '成': 1401, '龄': 1402, '-': 1403, '代': 1404, '胎': 1405, '饭': 1406, '沉': 1407, '盆': 1408, '啰': 1409, '夜': 1410, '胼': 1411, '雷': 1412, '敢': 1413, '皮': 1414, '木': 1415, '距': 1416, '识': 1417, '流': 1418, '部': 1419, '狭': 1420, '溲': 1421, '绷': 1422, '癔': 1423, '行': 1424, '晚': 1425, '鱼': 1426, '鼾': 1427, '出': 1428, '眼': 1429, '绛': 1430}
ans = []
ans1 = []
for element in data:
    for i in range(len(element)-1):
        ans.append(word_dict[element[i]])
        ans1.append(word_dict[element[i+1]])
key1 =[[i] for i in range(len(word_dict))]

key1 = np.array(key1)
graph = tfg.Graph(
    x=np.random.randn(len(word_dict), 1),  # 5 nodes, 20 features,
    edge_index=[ans,ans1]  # 4 undirected edges
)
# print(np.random.randn(5, 20))
print("Graph Desc: \n", graph)

graph.convert_edge_to_directed()  # pre-process edges
print("Processed Graph Desc: \n", graph)
print("Processed Edge Index:\n", graph.edge_index)
import joblib
# Multi-head Graph Attention Network (GAT)
gat_layer = tfg.layers.GAT(units=119, num_heads=119   , activation=tf.nn.relu)
output = gat_layer([graph.x, graph.edge_index])
print("Output of GAT: \n", output.shape)
# joblib.dump(output,"output")
output = joblib.load("output")
data = np.array(output)
import numpy as np
t1  = np.array([-0.4,0.8,0.5,-0.2,0.3])
t2  = np.array([-0.5,0.4,-0.2,0.7,-0.1])

def cos_sim(a, b):
    a_norm = np.linalg.norm(a)
    b_norm = np.linalg.norm(b)
    cos = np.dot(a,b)/(a_norm * b_norm)
    return cos
word = "高血压"
dict_word = [word_dict[element] for element in word]
word1 = "原发性"
word2 = "原发性高血压"
# dict_word = [word_dict[element] for element in word]
# print(word_dict["糖"],word_dict["尿"])
# print(cos_sim(data[415],data[8]))
# print(cos_sim(data[1227],data[624]))
# for i in range(100):
#     print(cos_sim(data[131],data[i]))
def handle(word):
    temp = []
    for i in range(len(word)):
        temp.append(data[word_dict[word[i]]].tolist())
    temp = np.array(temp)
    temp = np.sum(temp,axis=0)/len(word)
    return temp
temp  =handle(word)
temp1 = handle(word1)
temp2 =handle(word2)
print(cos_sim(temp,temp1))
print(cos_sim(temp2,temp1))
print(cos_sim(temp,temp2))
